//
// FILE NAME: CIDMetaExtr_ThisFacility.hpp
//
// AUTHOR: Dean Roddey
//
// CREATED: 06/24/2007
//
// COPYRIGHT: Charmed Quark Systems, Ltd @ 2019
//
//  This software is copyrighted by 'Charmed Quark Systems, Ltd' and
//  the author (Dean Roddey.) It is licensed under the MIT Open Source
//  license:
//
//  https://opensource.org/licenses/MIT
//
// DESCRIPTION:
//
//  This is the header file for the CIDMetaExtr_ThisFacility.cpp file. This
//  file implements the facility class for this facility.
//
// CAVEATS/GOTCHAS:
//
//  1)  The unique ids generated by this facility are for our own purpose
//      internally, mainly for the media repository in CQC. There are other
//      classes here that generated unique ids based on this or that specific
//      algorithm that might be needed by some external metadata source or
//      or device.
//
// LOG:
//
//  $_CIDLib_Log_$
//
#pragma once


#pragma CIDLIB_PACK(CIDLIBPACK)


// ---------------------------------------------------------------------------
//  CLASS: TFacCIDMetaExtr
// PREFIX: fac
// ---------------------------------------------------------------------------
class CIDMETAEXTREXP TFacCIDMetaExtr : public TFacility
{
    public  :
        // -------------------------------------------------------------------
        //  Constructors and Destructor
        // -------------------------------------------------------------------
        TFacCIDMetaExtr();

        ~TFacCIDMetaExtr();


        // -------------------------------------------------------------------
        //  Public, non-virtual methods
        // -------------------------------------------------------------------
        tCIDLib::TBoolean bGenUniqueBDId
        (
            const   TString&                strPath
            ,       TString&                strToFill
        )   const;

        tCIDLib::TBoolean bGenUniqueCDId
        (
            const   TString&                strPath
            ,       TKrnlRemMedia::TCDTOCInfo& TOCData
            ,       TString&                strToFill
        )   const;

        tCIDLib::TBoolean bGenUniqueCDId
        (
            const   TString&                strPath
            ,       TString&                strToFill
        )   const;

        tCIDLib::TBoolean bGenUniqueDVDId
        (
            const   TString&                strPath
            ,       TString&                strToFill
        )   const;


    private :
        // -------------------------------------------------------------------
        //  Do any needed magic macros
        // -------------------------------------------------------------------
        RTTIDefs(TFacCIDMetaExtr,TFacility)
};

#pragma CIDLIB_POPPACK

